﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Generic.Contract;
using Contract.Business.Entity;

namespace Contract.Business.Filter
{
    //Criado por : Gustavo
    //Data       : 10/25/2011 12:19:32 AM
    public class FEVenda : FilterEntity
    {
        #region Atributos

        private BECliente _Cliente;
        private int? _CodigoCliente;
        private DateTime? _DataVendaMax;
        private DateTime? _DataVendaMin;
        private BERegiaoEntrega _RegiaoEntrega;
        private int? _CodigoRegiaoEntrega;
        private decimal? _ValorTotalMax;
        private decimal? _ValorTotalMin;
        private decimal? _ValorTaxaEntrega;
        private string _Telefone;
        private bool? _Enviada;
        #endregion

        #region Propriedades
        public BECliente Cliente
        {
            get
            {
                return this._Cliente;
            }
            set
            {
                BECliente previousValue = this._Cliente;
                if ((previousValue == null) || (!previousValue.Equals(value)))
                {
                    this.SendPropertyChanging();
                    this._Cliente = value;
                    if (value != null)
                    {
                        this._CodigoCliente = value.Codigo;
                    }
                    else
                    {
                        this._CodigoCliente = default(int);
                    }
                    this.SendPropertyChanged("Cliente");
                }
            }
        }

        public int? CodigoCliente
        {
            get
            {
                return this._CodigoCliente;
            }
            set
            {
                if (this._CodigoCliente != value)
                {
                    this.SendPropertyChanging();
                    this._CodigoCliente = value;
                    this.SendPropertyChanged("CodigoCliente");
                }
            }
        }

        public DateTime? DataVendaMax
        {
            get
            {
                return this._DataVendaMax;
            }
            set
            {
                if (this._DataVendaMax != value)
                {
                    this.SendPropertyChanging();
                    this._DataVendaMax = value;
                    this.SendPropertyChanged("DataVendaMax");
                }
            }
        }

        public DateTime? DataVendaMin
        {
            get
            {
                return this._DataVendaMin;
            }
            set
            {
                if (this._DataVendaMin != value)
                {
                    this.SendPropertyChanging();
                    this._DataVendaMin = value;
                    this.SendPropertyChanged("DataVendaMin");
                }
            }
        }

        public BERegiaoEntrega RegiaoEntrega
        {
            get
            {
                return this._RegiaoEntrega;
            }
            set
            {
                BERegiaoEntrega previousValue = this._RegiaoEntrega;
                if ((previousValue == null) || (!previousValue.Equals(value)))
                {
                    this.SendPropertyChanging();
                    this._RegiaoEntrega = value;
                    if (value != null)
                    {
                        this._CodigoRegiaoEntrega = value.Codigo;
                    }
                    else
                    {
                        this._CodigoRegiaoEntrega = default(int);
                    }
                    this.SendPropertyChanged("RegiaoEntrega");
                }
            }
        }

        public int? CodigoRegiaoEntrega
        {
            get
            {
                return this._CodigoRegiaoEntrega;
            }
            set
            {
                if (this._CodigoRegiaoEntrega != value)
                {
                    this.SendPropertyChanging();
                    this._CodigoRegiaoEntrega = value;
                    this.SendPropertyChanged("CodigoRegiaoEntrega");
                }
            }
        }

        public decimal? ValorTotalMax
        {
            get
            {
                return this._ValorTotalMax;
            }
            set
            {
                if (this._ValorTotalMax != value)
                {
                    this.SendPropertyChanging();
                    this._ValorTotalMax = value;
                    this.SendPropertyChanged("ValorTotalMax");
                }
            }
        }

        public decimal? ValorTotalMin
        {
            get
            {
                return this._ValorTotalMin;
            }
            set
            {
                if (this._ValorTotalMin != value)
                {
                    this.SendPropertyChanging();
                    this._ValorTotalMin = value;
                    this.SendPropertyChanged("ValorTotalMin");
                }
            }
        }

        public decimal? ValorTaxaEntrega
        {
            get
            {
                return this._ValorTaxaEntrega;
            }
            set
            {
                if (this._ValorTaxaEntrega != value)
                {
                    this.SendPropertyChanging();
                    this._ValorTaxaEntrega = value;
                    this.SendPropertyChanged("ValorTaxaEntrega");
                }
            }
        }

        public string Telefone
        {
            get
            {
                return this._Telefone;
            }
            set
            {
                if (this._Telefone != value)
                {
                    this.SendPropertyChanging();
                    this._Telefone = value;
                    this.SendPropertyChanged("Telefone");
                }
            }
        }

        public bool? Enviada
        {
            get
            {
                return this._Enviada;
            }
            set
            {
                if (this._Enviada != value)
                {
                    this.SendPropertyChanging();
                    this._Enviada = value;
                    this.SendPropertyChanged("Enviada");
                }
            }
        }
        #endregion
    }
}
